home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Online / RFCs / rfc / rfc2112.txt < prev    next >
Text File  |  1997-03-17  |  17KB  |  508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        E. Levinson
  8. Request for Comments: 2112                                   XIson, Inc.
  9. Category: Standards Track                                     March 1997
  10. Obsoletes: 1872
  11.  
  12.  
  13.                 The MIME Multipart/Related Content-type
  14.  
  15. Status of this Memo
  16.  
  17.    This document specifies an Internet standards track protocol for the
  18.    Internet community, and requests discussion and suggestions for
  19.    improvements.  Please refer to the current edition of the "Internet
  20.    Official Protocol Standards" (STD 1) for the standardization state
  21.    and status of this protocol.  Distribution of this memo is unlimited.
  22.  
  23. Abstract
  24.  
  25.    The Multipart/Related content-type provides a common mechanism for
  26.    representing objects that are aggregates of related MIME body parts.
  27.    This document defines the Multipart/Related content-type and provides
  28.    examples of its use.
  29.  
  30. 1.  Introduction
  31.  
  32.    Several applications of MIME, including MIME-PEM, and MIME-Macintosh
  33.    and other proposals, require multiple body parts that make sense only
  34.    in the aggregate.  The present approach to these compound objects has
  35.    been to define specific multipart subtypes for each new object.  In
  36.    keeping with the MIME philosophy of having one mechanism to achieve
  37.    the same goal for different purposes, this document describes a
  38.    single mechanism for such aggregate or compound objects.
  39.  
  40.    The Multipart/Related content-type addresses the MIME representation
  41.    of compound objects.  The object is categorized by a "type"
  42.    parameter.  Additional parameters are provided to indicate a specific
  43.    starting body part or root and auxiliary information which may be
  44.    required when unpacking or processing the object.
  45.  
  46.    Multipart/Related MIME entities may contain Content-Disposition
  47.    headers that provide suggestions for the storage and display of a
  48.    body part.  Multipart/Related processing takes precedence over
  49.    Content-Disposition; the interaction between them is discussed in
  50.    section 4.
  51.  
  52.    Responsibility for the display or processing of a Multipart/Related's
  53.    constituent entities rests with the application that handles the
  54.    compound object.
  55.  
  56.  
  57.  
  58. Levinson                    Standards Track                     [Page 1]
  59.  
  60. RFC 2112          MIME Multipart/Related Content-type         March 1997
  61.  
  62.  
  63. 2.  Multipart/Related Registration Information
  64.  
  65.    The following form is copied from RFC 1590, Appendix A.
  66.  
  67.  
  68.    To:  IANA@isi.edu Subject:  Registration of new Media Type content-
  69.    type/subtype
  70.  
  71.    Media Type name:           Multipart
  72.  
  73.    Media subtype name:        Related
  74.  
  75.    Required parameters:       Type, a media type/subtype.
  76.  
  77.    Optional parameters:       Start
  78.                      Start-info
  79.  
  80.    Encoding considerations:   Multipart content-types cannot have
  81.                               encodings.
  82.  
  83.    Security considerations:   Depends solely on the referenced type.
  84.  
  85.    Published specification:   RFC-REL (this document).
  86.  
  87.    Person & email address to contact for further information:
  88.                      Edward Levinson
  89.                      47 Clive Street
  90.                      Metuchen, NJ 08840-1060
  91.                      +1 908 494 1606
  92.                      XIson@cnj.digex.net
  93.  
  94. 3.  Intended usage
  95.  
  96.    The Multipart/Related media type is intended for compound objects
  97.    consisting of several inter-related body parts.  For a
  98.    Multipart/Related object, proper display cannot be achieved by
  99.    individually displaying the constituent body parts.  The content-type
  100.    of the Multipart/Related object is specified by the type parameter.
  101.    The "start" parameter, if given, points, via a content-ID, to the
  102.    body part that contains the object root.  The default root is the
  103.    first body part within the Multipart/Related body.
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Levinson                    Standards Track                     [Page 2]
  115.  
  116. RFC 2112          MIME Multipart/Related Content-type         March 1997
  117.  
  118.  
  119.    The relationships among the body parts of a compound object
  120.    distinguishes it from other object types.  These relationships are
  121.    often represented by links internal to the object's components that
  122.    reference the other components.  Within a single operating
  123.    environment the links are often file names, such links may be
  124.    represented within a MIME message using content-IDs or the value of
  125.    some other "Content-" headers.
  126.  
  127. 3.1.  The Type Parameter
  128.  
  129.    The type parameter must be specified and its value is the MIME media
  130.    type of the "root" body part.  It permits a MIME user agent to
  131.    determine the content-type without reference to the enclosed body
  132.    part.  If the value of the type parameter and the root body part's
  133.    content-type differ then the User Agent's behavior is undefined.
  134.  
  135. 3.2.  The Start Parameter
  136.  
  137.    The start parameter, if given, is the content-ID of the compound
  138.    object's "root".  If not present the "root" is the first body part in
  139.    the Multipart/Related entity.  The "root" is the element the
  140.    applications processes first.
  141.  
  142. 3.3.  The Start-Info Parameter
  143.  
  144.    Additional information can be provided to an application by the
  145.    start-info parameter.  It contains either a string or points, via a
  146.    content-ID, to another MIME entity in the message.  A typical use
  147.    might be to provide additional command line parameters or a MIME
  148.    entity giving auxiliary information for processing the compound
  149.    object.
  150.  
  151.    Applications that use Multipart/Related must specify the
  152.    interpretation of start-info.  User Agents shall provide the
  153.    parameter's value to the processing application.  Processes can
  154.    distinguish a start-info reference from a token or quoted-string by
  155.    examining the first non-white-space character, "<" indicates a
  156.    reference.
  157.  
  158. 3.4.  Syntax
  159.  
  160.      related-param    := [ ";" "start" "=" cid ]
  161.                          [ ";" "start-info"  "="
  162.                      ( cid-list / value ) ]
  163.                          [ ";" "type"  "=" type "/" subtype ]
  164.                    ; order independent
  165.  
  166.      cid-list        := cid cid-list
  167.  
  168.  
  169.  
  170. Levinson                    Standards Track                     [Page 3]
  171.  
  172. RFC 2112          MIME Multipart/Related Content-type         March 1997
  173.  
  174.  
  175.      cid             := msg-id     ; c.f. [822]
  176.  
  177.      value           := token / quoted-string    ; c.f. [MIME]
  178.                     ; value cannot begin with "<"
  179.  
  180.    Note that the parameter values will usually require quoting.  Msg-id
  181.    contains the special characters "<", ">", "@", and perhaps other
  182.    special characters.  If msg-id contains quoted-strings, those quote
  183.    marks must be escaped.  Similarly, the type parameter contains the
  184.    special character "/".
  185.  
  186. 4.  Handling Content-Disposition Headers
  187.  
  188.    Content-Disposition Headers [DISP] suggest presentation styles for
  189.    MIME body parts.  [DISP] describes two presentation styles, called
  190.    the disposition type, INLINE and ATTACHMENT.  These, used within a
  191.    multipart entity, allow the sender to suggest presentation
  192.    information.  [DISP] also provides for an optional storage (file)
  193.    name.  Content-Disposition headers could appear in one or more body
  194.    parts contained within a Multipart/Related entity.
  195.  
  196.    Using Content-Disposition headers in addition to Multipart/Related
  197.    provides presentation information to User Agents that do not
  198.    recognize Multipart/Related.  They will treat the multipart as
  199.    Multipart/Mixed and they may find the Content-Disposition information
  200.    useful.
  201.  
  202.    With Multipart/Related however, the application processing the
  203.    compound object determines the presentation style for all the
  204.    contained parts.  In that context the Content-Disposition header
  205.    information is redundant or even misleading.  Hence, User Agents that
  206.    understand Multipart/Related shall ignore the disposition type within
  207.    a Multipart/Related body part.
  208.  
  209.    It may be possible for a User Agent capable of handling both
  210.    Multipart/Related and Content-Disposition headers to provide the
  211.    invoked application the Content-Disposition header's optional
  212.    filename parameter to the Multipart/Related.  The use of that
  213.    information will depend on the specific application and should be
  214.    specified when describing the handling of the corresponding compound
  215.    object.  Such descriptions would be appropriate in an RFC registering
  216.    that object's media type.
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Levinson                    Standards Track                     [Page 4]
  227.  
  228. RFC 2112          MIME Multipart/Related Content-type         March 1997
  229.  
  230.  
  231. 5.  Examples
  232.  
  233. 5.1 Application/X-FixedRecord
  234.  
  235.    The X-FixedRecord content-type consists of one or more octet-streams
  236.    and a list of the lengths of each record.  The root, which lists the
  237.    record lengths of each record within the streams.  The record length
  238.    list, type Application/X-FixedRecord, consists of a set of INTEGERs
  239.    in ASCII format, one per line.  Each INTEGER gives the number of
  240.    octets from the octet-stream body part that constitute the next
  241.    "record".
  242.  
  243.    The example below, uses a single data block.
  244.  
  245.      Content-Type: Multipart/Related; boundary=example-1
  246.              start="<950120.aaCC@XIson.com>";
  247.              type="Application/X-FixedRecord"
  248.           start-info="-o ps"
  249.  
  250.      --example-1
  251.      Content-Type: Application/X-FixedRecord
  252.      Content-ID: <950120.aaCC@XIson.com>
  253.  
  254.      25
  255.      10
  256.      34
  257.      10
  258.      25
  259.      21
  260.      26
  261.      10
  262.      --example-1
  263.      Content-Type: Application/octet-stream
  264.      Content-Description: The fixed length records
  265.      Content-Transfer-Encoding: base64
  266.      Content-ID: <950120.aaCB@XIson.com>
  267.  
  268.      T2xkIE1hY0RvbmFsZCBoYWQgYSBmYXJtCkUgSS
  269.      BFIEkgTwpBbmQgb24gaGlzIGZhcm0gaGUgaGFk
  270.      IHNvbWUgZHVja3MKRSBJIEUgSSBPCldpdGggYS
  271.      BxdWFjayBxdWFjayBoZXJlLAphIHF1YWNrIHF1
  272.      YWNrIHRoZXJlLApldmVyeSB3aGVyZSBhIHF1YW
  273.      NrIHF1YWNrCkUgSSBFIEkgTwo=
  274.  
  275.      --example-1--
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Levinson                    Standards Track                     [Page 5]
  283.  
  284. RFC 2112          MIME Multipart/Related Content-type         March 1997
  285.  
  286.  
  287. 5.2 Text/X-Okie
  288.  
  289.    The Text/X-Okie is an invented markup language permitting the
  290.    inclusion of images with text.  A feature of this example is the
  291.    inclusion of two additional body parts, both picture. They are
  292.    referred to internally by the encapsulated document via each
  293.    picture's body part content-ID.  Usage of "cid:", as in this example,
  294.    may be useful for a variety of compound objects.  It is not, however,
  295.    a part of the Multipart/Related specification.
  296.  
  297.      Content-Type: Multipart/Related; boundary=example-2;
  298.              start="<950118.AEBH@XIson.com>"
  299.           type="Text/x-Okie"
  300.  
  301.      --example-2
  302.      Content-Type: Text/x-Okie; charset=iso-8859-1;
  303.              declaration="<950118.AEB0@XIson.com>"
  304.      Content-ID: <950118.AEBH@XIson.com>
  305.      Content-Description: Document
  306.  
  307.      {doc}
  308.      This picture was taken by an automatic camera mounted ...
  309.      {image file=cid:<950118.AECB@XIson.com>}
  310.      {para}
  311.      Now this is an enlargement of the area ...
  312.      {image file=cid:<950118:AFDH@XIson.com>}
  313.      {/doc}
  314.      --example-2
  315.      Content-Type: image/jpeg
  316.      Content-ID: <950118.AFDH@XIson.com>
  317.      Content-Transfer-Encoding: BASE64
  318.      Content-Description: Picture A
  319.  
  320.      [encoded jpeg image]
  321.      --example-2
  322.      Content-Type: image/jpeg
  323.      Content-ID: <950118.AECB@XIson.com>
  324.      Content-Transfer-Encoding: BASE64
  325.      Content-Description: Picture B
  326.  
  327.      [encoded jpeg image]
  328.      --example-2--
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Levinson                    Standards Track                     [Page 6]
  339.  
  340. RFC 2112          MIME Multipart/Related Content-type         March 1997
  341.  
  342.  
  343. 5.3 Content-Disposition
  344.  
  345.    In the above example each image body part could also have a Content-
  346.    Disposition header.  For example,
  347.  
  348.      ...
  349.      --example-2
  350.      Content-Type: image/jpeg
  351.      Content-ID: <950118.AECB@XIson.com>
  352.      Content-Transfer-Encoding: BASE64
  353.      Content-Description: Picture B
  354.      Content-Disposition: INLINE
  355.  
  356.      [encoded jpeg image]
  357.      --example-2--
  358.  
  359.    User Agents that recognize Multipart/Related will ignore the
  360.    Content-Disposition header's disposition type.  Other User Agents
  361.    will process the Multipart/Related as Multipart/Mixed and may make
  362.    use of that header's information.
  363.  
  364. 6.  User Agent Requirements
  365.  
  366.    User agents that do not recognize Multipart/Related shall, in
  367.    accordance with [MIME], treat the entire entity as Multipart/Mixed.
  368.    MIME User Agents that do recognize Multipart/Related entities but are
  369.    unable to process the given type should give the user the option of
  370.    suppressing the entire Multipart/Related body part shall be.
  371.  
  372.    Existing MIME-capable mail user agents (MUAs) handle the existing
  373.    media types in a straightforward manner.  For discrete media types
  374.    (e.g. text, image, etc.) the body of the entity can be directly
  375.    passed to a display process.  Similarly the existing composite
  376.    subtypes can be reduced to handing one or more discrete types.
  377.    Handling Multipart/Related differs in that processing cannot be
  378.    reduced to handling the individual entities.
  379.  
  380.    The following sections discuss what information the processing
  381.    application requires.
  382.  
  383.    It is possible that an application specific "receiving agent" will
  384.    manipulate the entities for display prior to invoking actual
  385.    application process.  Okie, above, is an example of this; it may need
  386.    a receiving agent to parse the document and substitute local file
  387.    names for the originator's file names.  Other applications may just
  388.    require a table showing the correspondence between the local file
  389.    names and the originator's.  The receiving agent takes responsibility
  390.    for such processing.
  391.  
  392.  
  393.  
  394. Levinson                    Standards Track                     [Page 7]
  395.  
  396. RFC 2112          MIME Multipart/Related Content-type         March 1997
  397.  
  398.  
  399. 6.1 Data Requirements
  400.  
  401.    MIME-capable mail user agents (MUAs) are required to provide the
  402.    application:
  403.  
  404.    (a)  the bodies of the MIME entities and the entity Content-*
  405.         headers,
  406.  
  407.    (b)  the parameters of the Multipart/Related Content-type
  408.         header, and
  409.  
  410.    (c)  the correspondence between each body's local file name,
  411.         that body's header data, and, if present, the body part's
  412.         content-ID.
  413.  
  414. 6.2 Storing Multipart/Related Entities
  415.  
  416.    The Multipart/Related media type will be used for objects that have
  417.    internal linkages between the body parts.  When the objects are
  418.    stored the linkages may require processing by the application or its
  419.    receiving agent.
  420.  
  421. 6.3 Recursion
  422.  
  423.    MIME is a recursive structure.  Hence one must expect a
  424.    Multipart/Related entity to contain other Multipart/Related entities.
  425.    When a Multipart/Related entity is being processed for display or
  426.    storage, any enclosed Multipart/Related entities shall be processed
  427.    as though they were being stored.
  428.  
  429. 6.4 Configuration Considerations
  430.  
  431.    It is suggested that MUAs that use configuration mechanisms, see
  432.    [CFG] for an example, refer to Multipart/Related as
  433.    Multipart/Related/<type>, were <type> is the value of the "type"
  434.    parameter.
  435.  
  436. 7.  Security considerations
  437.  
  438.    Security considerations relevant to Multipart/Related are identical
  439.    to those of the underlying content-type.
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Levinson                    Standards Track                     [Page 8]
  451.  
  452. RFC 2112          MIME Multipart/Related Content-type         March 1997
  453.  
  454.  
  455. 8.  Acknowledgments
  456.  
  457.    This proposal is the result of conversations the author has had with
  458.    many people.  In particular, Harald A. Alvestrand, James Clark,
  459.    Charles Goldfarb, Gary Houston, Ned Freed, Ray Moody, and Don
  460.    Stinchfield, provided both encouragement and invaluable help.  The
  461.    author, however, take full responsibility for all errors contained in
  462.    this document.
  463.  
  464. 9.  References
  465.  
  466.    [822]       Crocker, D., "Standard for the Format of ARPA
  467.                Internet Text Messages", August 1982, University
  468.                of Delaware, RFC 822.
  469.  
  470.    [CID]       E. Levinson, J. Clark, "Message/External-Body
  471.                Content-ID Access Type", 12/26/1995, RFC 1873
  472.                Levinson, E., "Message/External-Body Content-ID
  473.                Access Type", February 1997, RFC 2111.
  474.  
  475.    [CFG]       Borenstein, N., "A User Agent Configuration
  476.                Mechanism For Multimedia Mail Format
  477.                Information", September 23, 1993, RFC 1524
  478.  
  479.    [DISP]      R. Troost, S. Dorner, "Communicating Presentation
  480.                Information in Internet Messages:  The Content-
  481.                Disposition Header", June 7, 1995, RFC 1806
  482.  
  483.    [MIME]      Borenstein, N. and Freed, N., "MIME (Multipurpose
  484.                Internet Mail Extensions): Mechanisms for
  485.                Specifying and Describing the Format of Internet
  486.                Message Bodies", June 1992, RFC 1341.
  487.  
  488. 9.  Author's Address
  489.  
  490.    Edward Levinson
  491.    XIson, Inc.
  492.    47 Clive Street
  493.    Metuchen, NJ  08840-1060
  494.    USA
  495.    +1 908 549 3716
  496.    <XIson@cnj.digex.com>
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Levinson                    Standards Track                     [Page 9]
  507.  
  508.